#include <stdio.h>
#include<stdlib.h>
void strcop(char a[],char *b,int i,int j);
int main()
{
	char s[1000000];
	int m=0,n=0,i;
	while(m<1000000) 
	{
		s[m]=' ';
		m++;
	}
	m=0;
	scanf("%s",&s);
	while(s[m]!=' ') m++;
	m--;
	do
	{
		n++;
		i=1;
		if(!(m%n))
		{
			char *a=malloc(n);
			char *t=malloc(n);
			strcop(s,a,0,n);	
			for(i=1;i<=m/n;i++)
			{
				strcop(s,t,(i-1)*n,i*n);
				if(!strequ(a,t,n)) 
				{
					break;
				}
			}
			i--;
			if(a) free(a);
			if(t) free(t);
		}
	}while(i<m/n);
	printf("%d\n",i);
	return 0;
}

void strcop(char a[],char *b,int i,int j)
{
	int t;
	for(t=0;t<j-i;t++)
	{
		b[t]=a[t+i];
	}
}//把a中从i到j的字符拷贝到b中，不包括j。

int strequ(char *a,char *b,int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		if(a[i]!=b[i]) return 0;
	}
	return 1;
}//a与b相等，返回1，不相等，返回0
